package com.tzy.parser.core.strategy;

import java.math.BigDecimal;


// 将基本 类型 和字符串 单独写成一个类
public class BasicTemplateStrategy implements TemplateStrategy{
    @Override
    public String strategyName() {
        return "basic";
    }

    @Override
    public boolean canParse(String template) {

        Object parse = parse(template, null);
        return parse!=null;
    }


    private Object base(String template) {
        if (template.equalsIgnoreCase("true") || template.equalsIgnoreCase("false")) {
            return Boolean.valueOf(template.toLowerCase());
        }

        if(template.startsWith("'") && template.endsWith("'") && template.length()>1){
            return template.substring(1,template.length()-1);
        }



        try{
            return new BigDecimal(template);
        }catch (Exception e){
            return null;
        }

    }

    @Override
    public Object parse(String template, Object meta) {

        if(template==null){
            return null;
        }

        template=template.trim();

        if(template.length()==0){
            return null;
        }

        return base(template);
    }
}
